home *** CD-ROM | disk | FTP | other *** search
/ MacAddict 116 / MacAddict 116 (Mac Power Pack)(theDISC)(April 2006).iso / Software / Interface / HolidayWidgetBundle.dmg / / Statosphere.wdgt / sysinfo.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  2005-06-15  |  1.8 KB  |  70 lines

  1. #!/bin/bash
  2. set -- `getopt "abcnrd" "$@"` || {
  3.     #debugging pour moi:
  4.     echo "Usage: `run_ps.sh $0` [-a] [-b] [-c] [-n] [-r] [-d]" 1>&2
  5.     exit 1
  6. }
  7.  
  8. airport=0 battery=0 cpu=0 network=0 disk=0
  9.  
  10. while :
  11. do
  12.     case "$1" in
  13.     -a) airport=1 ;;
  14.     -b) battery=1 ;;
  15.     -c) cpu=1 ;;
  16.     -n) network=1 ;;
  17.     -r) cpu=1 ;;
  18.     -d) disk=1 ;;
  19.     --) break ;;
  20.     esac
  21.     shift
  22. done
  23. shift    # REMOVE THE TRAILING --
  24. #echo "airport=$airport / battery=$battery / cpu=$cpu / network=$network / disk=$disk"
  25.  
  26. #note that we always get cpu and ram together, even if they're not both being monitored
  27.  
  28. if [ $cpu = 1 ]; then
  29.     #use ps because top takes quite a heavy hit:
  30.     /bin/ps auxc | /usr/bin/awk '{n++;c+=$3; r+= $4};END{printf("%3.2f,%3.2f", c, r)}'
  31. else
  32.     printf "0,0";
  33. fi
  34.  
  35. #now network:
  36. if [ $network = 1 ]; then
  37.     #
  38.     printf ",0"
  39. else
  40.     printf ",0";
  41. fi
  42.  
  43. #now battery:
  44. if [ $battery = 1 ]; then
  45.     #this is actually a variation on a script I found on google some time ago - I'll
  46.     #credit the original author when I find him... for now: cheers mate!
  47.     /usr/sbin/ioreg -p IODeviceTree -n "battery" -w 0 | awk '/IOBatteryInfo/ {info = $6 $7; split(info, bat, ","); printf(",%3.2f", substr(bat[4], index(bat[4],"=") + 1,10) / substr(bat[1], index(bat[1],"=") + 1,10) * 100)}'
  48.     
  49. else
  50.     printf ",0";
  51. fi
  52.  
  53. #and now airport status:
  54. if [ $airport = 1 ]; then
  55.     #this is using a command line tool i seen on google that we edited. Full credit to the 
  56.     #original author to be given soon
  57.     ./airport | /usr/bin/awk '{printf(",%3d",$1)}'  
  58.     #| /usr/bin/awk 'NR == 2 {sig_strength=$1; printf(",%3d", substr(sig_strength, 0, index(sig_strength,"%")))}'
  59. else
  60.     printf ",0";
  61. fi
  62.  
  63. #and now disk usage:
  64. if [ $disk = 1 ]; then
  65.     #Just use df to see the capacity for the startup disk (/)
  66.     /bin/df -l | awk 'NR == 2 {capacity = $5; printf(",%3d\n", substr(capacity, 0, index(capacity,"%")))}' 
  67.  
  68. else
  69.     printf ",0";
  70. fi